作者:wsl伊人 | 来源:互联网 | 2023-05-18 03:48
想把一个视图里的数据以字符串数组形式返回,且相邻字段定长分隔:
111 2 2345 456
23 123 234567 0
1000 22 agdasjg dhiawdh
怎么实现啊?
12 个解决方案
谁知道
谁知道
谁知道
谁知道
谁知道
谁知道
谁知道
谁知道
select a,b,c,d from yourtable 改为
select convert(char(64),a)+convert(char(64),b)+convert(char(64),c)+convert(char(64),d) from yourtable
当输出参数为数组类型时,怎么写?
我写:
PROCEDURE PROC(para1 IN VARCHAR2,para2 OUT my_arr)
IS
BEGIN
declare
type my_arr is varray(300) of varchar2(12);
begin
null;
end;
END;
总是说“my_arr”未定义
select to_char(a,'99999999')||to_char(b,'99999999') ||to_char(c,'99999999')||to_char(d,'99999999') from yourtable
我写
select to_char(table.a,'99999999')||to_char(table.b,'99999999')||to_char(table.c,'99999999')||to_char(table.d,'99999999')
from table
报错:table.a无效
to_char只能将数值型转换成字符型
谁知道怎么做啊????
假设table有a,b,c,d四个字段组成
select lpad(table.a,10)||lpad(table.b,10)||lpad(table.c,10)||lpad(table.d,10)
from table;
再问一句,这些结果能在存储过程中以varchar数组返回么
那个out后面怎么写???
我写:
PROCEDURE PROC(para1 IN VARCHAR2,para2 OUT my_arr)
IS
BEGIN
declare
type my_arr is varray(300) of varchar2(12);
begin
null;
end;
END;
你把这段写成package,out 部分在宣言部定义(
type my_arr is varray(300) IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER;
),
在本体部写连接过程
这种方法你所一个试验
偶以前就是用这种存储过程作的